The present invention generally relates to an interpolation method and a color correction method using interpolation, and more particularly to an interpolation method and a color correction method using interpolation in which yellow, magenta and cyan signals are generated from red, green and blue input signals. The methods are applicable to color copiers and color facsimile machines.
A linear masking techniques is known as a conventional color correction method. In this linear masking method, yellow, magenta and cyan ink quantity signals Y, M and C are obtained from red, green and blue input concentration signals R, G and B, and a relationship between the ink quantity signals and the input signals is represented by the following formula.
Y=xcex110+all R+xcex112 G+xcex113 B 
M=xcex120+xcex121 R+xcex122 G+xcex123 B 
C=xcex130+xcex131 R+xcex132 G+xcex133 B xe2x80x83xe2x80x83(1) 
In the formula (1), a10 through a33 are correction coefficients whose values can be determined through a beast square method on measurement data obtained by scanning several color pattern data.
Although this linear masking technique is useful and application of the linear masking allows small-size color correction hardware to be designed, it is difficult to achieve accurate color correction when the linear masking technique is applied, because the ink quantity signals are very roughly defined in formula (1). In order to achieve accurate color correction, it is necessary to use a non-linear masking technique in which 2nd-order terms such as R2, R G, or G B are additionally incorporated in formula (1). In another case, higher-order terms are further incorporated for achieving very accurate color correction, and reproducing color images closely resembling the originals. When the non-linear masking technique is used, a relationship between the ink quantity signals Y, M and C and the input signals R, G and B is represented as follows.                               Y          =                      a10            +                          a11              ⁢                              xe2x80x83                            ⁢              R                        +                          a12              ⁢                              xe2x80x83                            ⁢              G                        +                          a13              ⁢                              xe2x80x83                            ⁢              B                        +                          a14              ⁢                              xe2x80x83                            ⁢              R              *              2                        +                          a15              ⁢                              xe2x80x83                            ⁢              G              *              2                        +                          a16              ⁢                              xe2x80x83                            ⁢              B              *              2                        +                          a17              ⁢                              xe2x80x83                            ⁢              R              ⁢                              xe2x80x83                            ⁢              G                        +                          a18              ⁢                              xe2x80x83                            ⁢              G              ⁢                              xe2x80x83                            ⁢              B                        +                          a19              ⁢                              xe2x80x83                            ⁢              B              ⁢                              xe2x80x83                            ⁢              R                                      ⁢                  
                ⁢                  M          =                      a20            +                          a21              ⁢                              xe2x80x83                            ⁢              R                        +                          a22              ⁢                              xe2x80x83                            ⁢              G                        +                          a23              ⁢                              xe2x80x83                            ⁢              B                        +                          a24              ⁢                              xe2x80x83                            ⁢              R              *              2                        +                          a25              ⁢                              xe2x80x83                            ⁢              G              *              2                        +                          a26              ⁢                              xe2x80x83                            ⁢              B              *              2                        +                          a27              ⁢                              xe2x80x83                            ⁢              R              ⁢                              xe2x80x83                            ⁢              G                        +                          a28              ⁢                              xe2x80x83                            ⁢              G              ⁢                              xe2x80x83                            ⁢              B                        +                          a29              ⁢                              xe2x80x83                            ⁢              B              ⁢                              xe2x80x83                            ⁢              R                                      ⁢                  
                ⁢                  C          =                      a30            +                          a31              ⁢                              xe2x80x83                            ⁢              R                        +                          a32              ⁢                              xe2x80x83                            ⁢              G                        +                          a33              ⁢                              xe2x80x83                            ⁢              B                        +                          a34              ⁢                              xe2x80x83                            ⁢              R              *              2                        +                          a35              ⁢                              xe2x80x83                            ⁢              G              *              2                        +                          a36              ⁢                              xe2x80x83                            ⁢              B              *              2                        +                          a37              ⁢                              xe2x80x83                            ⁢              R              ⁢                              xe2x80x83                            ⁢              G                        +                          a38              ⁢                              xe2x80x83                            ⁢              G              ⁢                              xe2x80x83                            ⁢              B                        +                          a39              ⁢                              xe2x80x83                            ⁢              B              ⁢                              xe2x80x83                            ⁢              R                                                          (        2        )            
In formula (2), a multiplication sign xe2x80x9cxxe2x80x9d is omitted, a10 through a39 are correction coefficients whose values are predetermined through a least square method based on measurement data obtained by scanning a number of color patterns, and xe2x80x9cR * 2xe2x80x9d, for example, denotes the square of R.
Other conventional interpolation methods are applied to the color correction method in which color correction is carried out using interpolation so as to generate yellow, magenta and cyan ink quantity signals Y M and C from the input data of red, green and blue concentration signals R, G and B. In a first method of the conventional interpolation methods, RGB space is divided into plural unit cubes, color correction data is predetermined with respect to eight lattice points of each of the unit cubes, and color correction values corresponding to input RGB signals at intermediate points between two of the lattice points, are obtained through 8-point linear interpolation which is done using the predetermined correction data. When the linear interpolation is performed, it is required to calculate eight products and sums with the data. This first method has a problem in that it requires a long processing time for color correction and relatively complicated hardware. Also, in the case of the first method there is a problem in that on boundaries between adjacent unit cubes there exists a discontinuity in interpolation values calculated by the linear interpolation procedure.
A second interpolation method was proposed in order to eliminate the above described problems of the first method. For example, Japanese Patent Publication No. 58-16180 discloses such an interpolation method. In this second method, RGB space is divided into plural unit cubes and each of the unit cubes is further divided into plural small tetrahedrons. Color correction data is predetermined with respect to four vertex points of each of the tetrahedrons, and it is stored in a memory. A unit cube is selected from among the plural unit cubes based on the higher bits of data of input RGB signals (the higher bits denote, e.g., the most significant four bits of 8-bit data), and one tetrahedron is selected from the plural tetrahedrons included in the selected unit cube, based on the lower bits of data of the input RGB signals (the lower bits denote, hereinafter, e.g., the least significant four bits of 8-bit data). Color correction values corresponding to the input RGB signals are obtained, using the stored correction data, through linear interpolation with respect to the vertex points of the selected tetrahedron. Although the second method can be carried out by using a calculation formula which is simpler than that of the first method using 8-point interpolation, there is a problem in that hardware to which the second method is applied must have a relatively great size because of a relatively large number of multipliers required for calculating the color correction values.
Also, in order to eliminate the above described problems of the first method, a third interpolation technique was proposed. For example, Japanese Laid-Open Patent Application No. 2-206973 and xe2x80x9cColor Correction of Color Hardcopy by Interpolation using 4-neighborhood Pointsxe2x80x9d by K. Kanamori and H. Kotera, from a transaction of Institute of Picture Electronics Engineers of Japan (Gazou Denshi Gakkai-Shi), vol.10, no.5, 1989, p.319-328, disclose this third interpolation method. In this third method, RGB space is divided into plural unit cubes, each of the unit cubes is further divided into five small tetrahedrons, and color correction factors, which are predetermined with respect to four vertex points of each of the tetrahedrons, are stored in a memory. Based on the higher bits of data of input RGB signals, a unit cube is selected from the plural unit cubes, and one tetrahedron is selected from the plural tetrahedrons included in the selected unit cube based on the lower bits of data of the input RGB signals. Color correction values corresponding to the input RGB signals are obtained through multiplication/addition calculations done, using the stored color correction factors, with respect to the selected tetrahedron and the data of the input RGB signals. Although hardware for carrying out the third method uses only three multipliers and three adders, and the required hardware is of simple construction, there is a problem in that all the bits of data of input RGB signals are input to the multipliers, and the multipliers must have relatively great size.
In the above conventional interpolation methods, Y, M and C correction values, corresponding to lattice points on each tetrahedron, are determined by calculating, through a least square method, correction factors included in a non-linear function such as that represented by formula (2). The YMC correction values corresponding to the lattice points can be determined appropriately only if the number of small tetrahedrons into which RGB space is divided is great enough. Thus, only if such a condition is satisfied, the interpolation can be done within unit regions, so as to achieve very accurate color correction results. If the number of small tetrahedrons is not great enough, it is difficult to achieve accurate color correction through the above interpolation techniques. Also, in the cases of the above techniques, the YMC correction values corresponding to the lattice points of the tetrahedrons are determined regardless of whether or not the number of such tetrahedrons is large enough.
For determining the correction coefficients through the least square method, the above described methods use reference ink quantity signals measured by scanning color patterns which are printed with predetermined ink quantities, and concentration data obtained by decomposing the scanned data of the color patterns. The concentration data from the scanned color data is gathered densely in a diagonally extending central area of RGB space, which contains a diagonal line (R=G=B), and which concentration data does not exist uniformly in RGB space. The concentration data exists sparsely in peripheral areas of RGB space, which areas are located in RGB space at corners and peripheral portions distant from the diagonal line. FIG.1A shows such a distribution of the concentration data obtained from the printed color patterns in RGB space. In FIG.1A, concentration data 12 is gathered densely in a diagonally extending central area of RGB space adjacent to a diagonal like 11 (R=G=B) and little concentration data exists in peripheral areas of RGB space when the concentration data is obtained by scanning printed color patterns.
When approximate Y, M and C ink quantity signals are obtained by the non-linear function being applied to the whole of RGB space using the concentration data from the color patterns, there is a problem in that an excessively large amount of data is generated and in that divergence may occur with respect to lattice points, in the peripheral areas of RGB space, where the concentration data exists sparsely. Generally, a region in which concentration data generated from printed data exists is narrower than that in which concentration data generated from photographic data exists. FIG.1B shows a distribution of concentration data generated by scanning photographic data. In FIG.1B, the concentration data from the photographic data exists in a wider region of the RG plane, approaching the peripheral portions thereof, as indicated by a dotted line 13 in FIG.1B. In such a case, if Y, M and C ink quantities are preset with respect to lattice points in the peripheral areas as in the above conventional methods, there is a problem in that an irregularly corrected or unusual color may appear in the reproduced image. Such peripheral areas of RGB space are indicated by shading lines in FIG.2.
When the above conventional methods are used, color reproduction error and/or concentration difference can be reduced uniformly in the whole of RGB space. Such concentration difference, however, is not always lower than a prescribed level in local areas such as achromatic color areas or highlighted areas where a difference between original color and reproduced color is especially appreciable. Thus, there is a problem in that the conventional methods do not necessarily provide high-quality reproduced images.
Accordingly, it is a general object of the present invention to provide an improved interpolation and color correction method in which the above described problems of the conventional methods are eliminated.
Another and more specific object of the present invention is to provide an interpolation method which realizes a color correction hardware of simple structure, and carries out accurate color correction using a memory of small storage capacity.
Still another object of the present invention is to provide an interpolation method of the space-division type in which lattice point is appropriately predetermined corresponding to lattice points in RGB space.
A further object of the present invention is to provide a color correction method which improves the quality of a reproduced image corresponding to a peripheral area of RGB space.
A further object of the present invention is to provide a color correction method which improves the quality of a reproduced image corresponding to a local area of RGB space in which a color difference between the original image and the reproduced image is appreciable.
The above mentioned objects of the present invention can be achieved by an interpolation method for converting input color signals into correction signals, which comprises the steps of selecting a triangular prism based x, y and z coordinates of the input signals from plural unit triangular prisms into which XYZ space is divided, reading out lattice point data of the selected triangular prism from a memory in which predetermined correction data is stored, the correction data corresponding to lattice points of each of the plural unit triangular prisms, and calculating correction data corresponding to the input signals through interpolation of values of the lattice point data read out from the memory so that the correction signals are generated based on the calculated correction data. According to the present invention, it is possible to realize color correction hardware of simple construction and carry out accurate color correction using a memory of small storage capacity.
The above mentioned objects of the present invention can also be achieved by a color correction method for generating color correction signals Y, M and C from input signals R, G and B through interpolation, which comprises the steps of calculating a set of correction factors included in a linear function and a set of correction factors included in a non-linear function through a least square method based on plural color pattern data which is printed with predetermined ink quantities, and based on density data obtained by color decomposition of the plural color pattern data, determining correction signals Y, M and C, corresponding to lattice points in RGB space by using either the linear of the non-linear function including the calculated set of correction factors, setting the correction signals Y, M and C, determined by using the linear function, to a lattice point in RGB space when the lattice point is located in an area of RGB space in which the density data is lower than a predetermined level, and setting the correction signals Y, M and C, determined by using the non-linear function, to a lattice point in RGB space when the lattice point is not located in an area of RGB space in which the density data is lower than a predetermined level. According to the present invention, it is possible to attain high quality of reproduced image corresponding to a local area of RGB space in which a color difference between the original image and the reproduced image is appreciable.
Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings.